import router from '@/router'

import store from '@/store'

// 路由守卫常见的有两种：
// 1.前置守卫
// 2.后置守卫
// 路由守卫当中有三个特别重要的回调参数 to from next()
// to代表到哪去
// from代表从哪里来
// next() 执行跳转的方法，是否放行

router.beforeEach((to, from, next) => {
  // 有token, 不能去登录页
  // 无token, 需要用户"权限"的才需要去登录页
  if (to.path === '/login') {
    next()
  } else {
    if (store.state.token) {
      next()
    } else {
      next('/login')
    }
  }
})

// 路由后置守卫
router.afterEach((to, from) => {
  // 如果当前的路由的元信息中，isRecord 的值为 true
  if (to.meta.isRecord) {
    setTimeout(() => {
      // 则把元信息中的 top 值设为滚动条纵向滚动的位置
      window.scrollTo(0, to.meta.top)
    }, 0)
  }
})
